The present invention relates to the field of knowledge repositories and, more particularly, to using function call graphs (FCG) generated from trace data within a searchable problem determination knowledge base.
Computer programs exist that trace execution behavior of a software executable for purposes of detecting and curing error conditions. These trace programs provide a repository of information that can be analyzed when a software program exhibits unexpected behavior. Human analysts can use the stored repository information to determine what was internally occurring during program execution and to ascertain an exact sequence of events, which lead to the unexpected behavior. Once a source of a problem is known, a solution to this problem (or work-around) can be developed. Currently, the troubleshooting and problem determination process is a highly manual one that consumes substantial time. Further, an ability to identify symptoms, to trace system activities to determine a problem locus is dependent upon an analysis skill level of a human agent.
Many attempts have been made to establish a knowledge base, which is useful to analysts performing problem determination tasks. With current knowledge bases, an analyst assigned to the problem is encouraged to record details related to the problem, a root cause determined for the problem, along with a problem resolution. All of this information is placed in the knowledge base. The information is typically stored in searchable database records. It is presumed that when future problems arise, the knowledge base will be searched by analysts who can benefit from past analysis efforts.
The recordation and searching of problem determination knowledge into/from the knowledge base is a manual process, as is the problem determination process itself. A quality and usefulness of a conventional knowledge base is dependent upon a quality and nature of data manually input into the system. A quality of this input is often suspect for many reasons. For example, skilled analysts are typically incentivized to properly perform troubleshooting tasks through promotion, raises, continued employment, and the like. In contrast, entry of high-quality problem determination data into a knowledge base, even if required by a company, is not a process for which a skilled analyst is rewarded. It is nevertheless a time consuming and thought laden endeavor. Analysts forced to input data into a knowledge base often do so in a haphazard manner, providing data of dubious quality. Thus, no guarantees or safeguards exist regarding an output-quality of data stored within a conventional knowledge base.
Further, there is no assurance in conventional knowledge base systems that a search of the knowledge base will return optimal results. That is, existing systems provide a keyword-based search. When a user query is based upon key words that are not consistent with words input by a previous analysts, stored and relevant problem resolution data will not be returned. Consequently, for conventional knowledge bases, a relevancy of output depends upon a manner in which an input-query is framed.